/*
    单例模式
    1.将类的构造方法定义为私有方法
    2.定义一个私有类的实例示例
    3.提供一个共有的获取实例的静态方法
*/
#ifndef __B_H__
#define __B_H__

#include <iostream>
#include <string>
#include "Singleton.h"
using namespace std;
using namespace sf::utility;

class B
{

    friend class Singleton<B>;

public:
    // static B * instance()
    // {
    //     if(m_instance == nullptr)
    //     {
    //         m_instance = new B();
    //     }
    //     return m_instance;
    // }

    void show()
    {
        cout << this->m_name << endl;
    }

private:
    B() : m_name("class B") {
        cout << "B 的默认构造函数" << endl;
    };
    B(const B &) {};
    ~B() {
        // delete m_instance;
        // m_instance = nullptr;
    };
    B & operator = (const B &);

private:
    string m_name;
    // static B * m_instance;
};
// B * B::m_instance = nullptr;

#endif